package com.aidex.biz.utils;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;

public class DecimalUtils {

    /**
     * 将某个数值均分成n份
     *
     * @param value 需要均分的数
     * @param n     分成份数
     * @param scale 保留小数位数
     * @return
     */
    public static BigDecimal[] divideWithFixedScale(BigDecimal value, int n, int scale) {
        if (n <= 0) throw new IllegalArgumentException("n 必须 > 0");

        if (scale < 0) {
            scale = 2;
        }
        BigDecimal[] parts = new BigDecimal[n];
        BigDecimal eachPart = value
                .divide(new BigDecimal(n), scale, RoundingMode.HALF_UP); // 均分并四舍五入

        Arrays.fill(parts, eachPart); // 填充相同值
        return parts;
    }
}
